import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;


public class InvokeMethod {

	// အသုံးပြုမည့် စခရစ်ဖိုင်
	static final String FILE = "InvokeMethod.py";
	
	/**
	 * အဓိကလုပ်ဆောင်ချက်
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		ScriptEngine eng = new ScriptEngineManager().getEngineByExtension("py");
		try {
			// စခရစ်ဖိုင်ကို မန်မိုရီပေါ်သို့ခေါ်ယူခြင်း
			eng.eval(new BufferedReader(new FileReader(FILE)));
			// Object ကို စခရစ်အင်ဂျင်မှ ရယူခြင်း
			Object minlwin = eng.get("minlwin");
			// Object ၏ လုပ်ဆောင်ချက်ကို လုပ်ဆောင်စေခြင်း
			Object ret = ((Invocable)eng).invokeMethod(minlwin, "greet", new Object[]{});
			// ရရှိလာသော Return တန်ဖိုးကို ကွန်ဆိုးပေါ်တွင် ဖော်ပြခြင်း
			System.out.println(ret);
		} catch (FileNotFoundException e) {
			System.err.println("စခရစ်ဖိုင်ကို ရှာမတွေ့ပါ။");
		} catch (ScriptException e) {
			System.err.println("စခရစ်ဘာသာရပ်ဆိုင်ရာ အမှားဖြစ်ပါသည်။");
		} catch (NoSuchMethodException e) {
			System.err.println("ခေါ်ယူလိုသော လုပ်ဆောင်ချက်ကို ရှာမတွေ့ပါ။");
		}
	}

}
